<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>实例方法</title>
</head>
<body>
  <script>
    /**
     * 数组实例的copyWithin()方法，在当前数组内部，将指定位置的成员复制到其他位置。(会覆盖原有成员)
     * 然后返回当前数组，也就是说使用这个方法会修改原数组
     * 它接受三个参数：
     * 1.target(必需)：从该位置开始替换数据。如果为负值表示倒数。
     * 2.start(可选)：从该位置开始读取数据，默认为0。如果为负值，表示从尾开始计算
     * 3.end(可选)： 到该位置前停止读取数据，默认等于数组长度。如果为负值，表示从末尾开始计算
     * 这三个参数都应该是数值，如果不是，会自动转为数值
    */
   Array.prototype.copyWithin(target, start = 0, end = this.length)
   [1,2,3,4,5].copyWithin(0,3) // [4,5,3,4,5]
   //上面代码表示，将从3号位知道数组结束的成员((4和5)，复制到从 0号位开始的位置。结果覆盖了原来的1 和 2
   // 将3号位复制到0号位
   [1,2,3,4,5].copyWithin(0,3,4) // [4, 2, 3, 4, 5]
   // -2相当于3号位，-1相当于4号位
   [1,2,3,4,5].copyWithin(0,-2,-1)// [4, 2, 3, 4, 5]
   // 将3号位复制到0号位
   [].copyWithin.call({length: 5, 3: 1}, 0, 3) // {0: 1, 3: 1, length: 5}
  </script>
</body>
</html>